package main.com.yyx.pool;

import java.io.InputStream;
import java.util.Properties;

/**
 * 连接池参数配置文件
 *
 * 在实际中使用数据库连接池，需要在Spring的配置文件中，进行一些参数配置。
 */
public class DBConfigXML {
    // 数据库驱动名称
    public static String jdbcDriver;

    // 数据库访问地址
    public static String jdbcURL;

    // 数据库连接用户名
    public static String jdbcUsername;

    // 数据库连接密码
    public static String jdbcPassword;

    // 数据库连接池连接数初始化大小
    public static int initCount;

    // 连接池中最小连接数
    public static int minCount;

    // 连接池中最大连接数
    public static int maxCount;

    //静态代码块：初始化类，可以为类的属性进行赋值操作
    //当JVM加载类的时候，会去执行其中静态代码块，因为是在加载类的过程中执行的，所以静态代码块只会执行一次
    static {
        //用来保存属性文件中中的键值对
        Properties properties = new Properties();

        try {
            //读取属性文件中的内容，将其读取到一个输入流中
            InputStream is = DBConfigXML.class.getClassLoader().getResourceAsStream("jdbc.properties");
            //从输入流中读取属性列表：属性文件中的键值对列表
            properties.load(is);
            System.out.println("=================成功加载数据库配置文件配置文件=================");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("=================配置文件读取错误=================");
        }

        //将读取到的值赋值给类的成员变量
        jdbcDriver = properties.getProperty("jdbc.mysql.driver");
        jdbcURL = properties.getProperty("jdbc.mysql.url");
        jdbcUsername = properties.getProperty("jdbc.mysql.username");
        jdbcPassword = properties.getProperty("jdbc.mysql.password");
        initCount = Integer.parseInt(properties.getProperty("jdbc.mysql.initcount"));
        minCount = Integer.parseInt(properties.getProperty("jdbc.mysql.minCount"));
        maxCount = Integer.parseInt(properties.getProperty("jdbc.mysql.maxcount"));

        System.out.println("jdbcDriver=" + jdbcDriver);
    }

}
